/**
 * 注：在每个使用到的在 apiready 中加入
 * var jpush = api.require('ajpush');
 */


/**
 * 1.初始化推送
 * @author hongwei 2018-07-20
 */
function initJPush(){
    jpush.init(function(ret, err){
        if(ret && ret.status){
            //console.log(JSON.stringify(ret));
            //console.log('初始化推送成功!');
        }else{
            //console.log('初始化推送失败!');
        }
    });
}

/**
 * 2.在网页中监听收到的消息
 */
function setListener(){
    jpush.setListener(function(ret, err){
        if(ret){
            api.alert({msg: '收到消息：\n' + JSON.stringify(ret)});
            //notify();//也可自行调用api.notification弹出本地通知，见notify()函数
        }
    });
    api.alert({msg: '设置成功，收到的消息将通过此函数回调给网页，不再弹出通知到状态栏'});
}

/**
 * 3.移除消息监听
 */
function removeListener(){
    jpush.removeListener();
    api.alert({msg: '移除成功，移除后网页将不再收到消息，消息将弹出通知到状态栏'});
}

/**
 * 4.进行绑定bindAliasAndTags 及存储 registrationID
 * @author hongwei
 */
// function bindAliasAndTags(alias, tags){
//     if (alias == 'test') {
//         var deviceId = api.deviceId;
//         var deviceIdReplace = deviceId.replace(/-/g,'');
//         alias   = deviceIdReplace;
//         tags    = 'develop,dist'; //tag值
//     }
//     if(!alias && !tags){
//         alert('别名和标签至少传一个');
//         return;
//     }
//     if(!alias){
//         alias = '';
//     }
//     if(tags){
//         tags = tags.split(',');
//     }
//     jpush.bindAliasAndTags({
//         alias:alias,
//         tags:tags
//     }, function(ret, err){
//         //alert('处理结果：\n' + JSON.stringify(ret));
//         var statusCode = ret.statusCode;
//         if(statusCode == 0){
//
//         }
//
//     });
// }

/**
 * 5.通知极光推送SDK当前应用恢复到前台onResume
 */
function onResume(){
    jpush.onResume();
    //console.log('JPush onResume');
}

/**
 * 6.通知极光推送SDK当前应用退入到后台onPause
 */
function onPause(){
    jpush.onPause();
    //console.log('JPush onPause');
}

/**
 * 7.清除所有极光推送发出的通知clearNotification
 * @param id
 */
function clearNotification(id){
    if(!id){
        id = -1;
    }
    jpush.clearNotification({id:id});
}

/**
 * 8.设置setPushTime
 */
function setPushTime(){
    var days = valueOf('days');
    var startHour = valueOf('startHour');
    var endHour = valueOf('endHour');
    if(!days){
        alert('日期不能为空');
        return;
    }
    days = days.split(',');
    if(!startHour){
        startHour = 0;
    }
    if(!endHour){
        endHour = 23;
    }
    jpush.setPushTime({
        days: days,
        startHour: startHour,
        endHour: endHour
    }, function(ret, err){
        if(ret && ret.status){
            alert('操作成功!');
        }else{
            alert('操作失败!');
        }
    });
}

/**
 * 9.设置setSilenceTime
 */
function setSilenceTime(){
    var startHour = valueOf('startHour1');
    var endHour = valueOf('endHour1');
    var startMinute = valueOf('startMinute1');
    var endMinute = valueOf('endMinute1');
    if(!startHour){
        startHour = 0;
    }
    if(!endHour){
        endHour = 23;
    }
    if(!startMinute){
        startMinute = 0
    }
    if(!endMinute){
        endMinute = 50;
    }
    jpush.setSilenceTime({
        startHour: startHour,
        endHour: endHour,
        startMinute: startMinute,
        endMinute: endMinute
    }, function(ret, err){
        if(ret && ret.status){
            alert('操作成功!');
        }else{
            alert('操作失败!');
        }
    });
}

/**
 * 10.停止推送stopPush
 */
function stopPush(){
    jpush.stopPush(function(ret, err){
        if(ret && ret.status){
            alert('操作成功!');
        }else{
            alert('操作失败!');
        }
    });
}

/**
 * 11.恢复推送resumePush
 */
function resumePush(){
    jpush.resumePush(function(ret, err){
        if(ret && ret.status){
            alert('操作成功!');
        }else{
            alert('操作失败!');
        }
    });
}

/**
 * 12.判断推送是否停止isPushStopped
 */
function isPushStopped(){
    jpush.isPushStopped(function(ret, err){
        if(ret.isStopped == 1){
            alert('已停止');
        }else{
            alert('未停止');
        }
    });
}

/**
 * 13.清空应用图标右上角数字，只iOS有效setBadge
 */
// function setBadgeZero() {
//     jpush.setBadge({
//         badge:0
//     });
//     //console.log('图标角标清空，请查看图标！')
// }

/**
 * 14.获取getRegistrationId
 */
// function getId(){
//     jpush.getRegistrationId(function(ret, err){
//         //console.log(JSON.stringify(ret));
//     });
// }

/**
 * 本地通知
 * @type {number}
 */
var count = 0;
function notify(){
    count++;//便于区分计数
    api.notification({
        vibrate:[300, 500],
        sound:'widget://res/horse.ogg',//自定义声音
        notify: {
            title: '通知标题' + count, //标题，默认值为应用名称，只Android有效
            content: '通知内容' + count, //内容，默认值为'有新消息'
            extra:{}, //传递给通知的数据，在通知被点击后，该数据将通过监听函数回调给网页
            updateCurrent:false    //是否覆盖更新已有的通知，取值范围true|false。只Android有效
        }
    }, function(ret, err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
    });
}


function valueOf(id){
    if(!id){
        return '';
    }
    return document.getElementById(id).value;
}
